﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DotLink;

namespace JAVALI_Cardapio_Atendimento.Cardapio
{
    public partial class FrmTipo : Form
    {
        public Form Before { get; set; }

        #region Construtor
        public FrmTipo()
        {
            InitializeComponent();
        }
        #endregion

        #region Métodos

        /// <summary>
        /// Carregamento inicial do formulário de Tipos de Produto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmCardapioPesquisarTipo_Load(object sender, EventArgs e)
        {
            //Atribui a visibilidade Falsa para o botões de excluir Tipo de Pedido
            btnExcluirTipo.Visible = false;

            dtPesquisarTipo.DataSource = Bag.Cardapio.listarTipo();
        }

        /// <summary>
        /// No clique do botão Pesquisar, o tipo digitado no campo de texto é pesquisado e, se encontrado, o mesmo carregado no DataGridView
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPesquisarTipo_Click(object sender, EventArgs e)
        {
            try
            {
                if (!String.IsNullOrEmpty(txtPesquisaTipoProduto.Text))
                {
                    dtPesquisarTipo.DataSource = Bag.Cardapio.listarTipo(txtPesquisaTipoProduto.Text);
                    dtPesquisarTipo.Refresh();
                }
                else
                {
                    MessageBox.Show("Digite um tipo de produto para ser pesquisado!");
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                MessageBox.Show("Resultado não encontrado, tente novamente!");
            }
        }

        /// <summary>
        /// No clique do botão voltar, retorna para o Menu de Cardápio e fecha o formulário de Tipos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnVoltarMenuCardapio_Click(object sender, EventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }

        private void dtPesquisarTipo_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void btnExcluirTipo_Click(object sender, EventArgs e)
        {
            try
            {
                if (dtPesquisarTipo.SelectedCells.Count < 1)
                {
                    MessageBox.Show("Selecione uma linha.");
                    return;
                }
                var row = dtPesquisarTipo.SelectedCells[0].RowIndex;
                var index = dtPesquisarTipo.Rows[row].Cells[0].Value.ToString();
                Bag.Cardapio.excluirTipo(index);
            }
            catch(Exception er)
            {
                MessageBox.Show(er.Message);
            }
            dtPesquisarTipo.DataSource = Bag.MTipos_Array();
        }

        /// <summary>
        /// No clique do link Sair, encerra a aplicação
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void linkSair_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }

        /// <summary>
        /// No clique do link Voltar, retorna para o Menu de Cardápio e fecha o formulário de Tipos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void linkVoltarMenuCardapio_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }
        #endregion

        private void dtPesquisarTipo_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //Caso haja a seleção de uma das linhas do DataGridView de Tipos de Produto, o botão de excluir Tipos se torna visível
            lblSelecionaLinhaTipo.Visible = false;
            btnExcluirTipo.Visible = true;            
        }
    }
}
